* lilu-dmenu
Call dmenu/rofi program from Common Lisp
** Usage

#+BEGIN_SRC lisp
(dynamic-menu "select a number" '(1 2 3 4 5)
              :item-fn #'(lambda (x) (format nil "~r" x)))
#+END_SRC

#+BEGIN_SRC lisp
(multiple-value-bind (sel match-p)
    (dynamic-menu "select a number" '(1 2 3 4 5)
                  :item-fn #'(lambda (x) (format nil "~r" x)))
  (format t "Selection: ~A (~A) ~%" sel (if match-p "matched" "unmatched")))
#+END_SRC


#+BEGIN_SRC lisp
(let ((*dmenu* :rofi))
  (multiple-value-bind (sel match-p)
      (dynamic-menu "select a number" '(1 2 3 4 5)
                    :item-fn #'(lambda (x) (format nil "~r" x)))
    (format t "Selection: ~A (~A) ~%" sel (if match-p "matched" "unmatched"))))
#+END_SRC

#+BEGIN_SRC lisp
(multiple-value-bind (sel match-p)
    (dmenu "select a number" '(1 2 3 4 5)
           :item-fn #'(lambda (x) (format nil "~r" x)))
  (format t "Selection: ~A (~A) ~%" sel (if match-p "matched" "unmatched")))
#+END_SRC

#+BEGIN_SRC lisp
(multiple-value-bind (sel match-p)
    (rofi "select a number" '(1 2 3 4 5)
          :item-fn #'(lambda (x) (format nil "~r" x)))
  (format t "Selection: ~A (~A) ~%" sel (if match-p "matched" "unmatched")))
#+END_SRC


The default theme:
#+BEGIN_SRC lisp
lilu-dmenu:*dmenu-theme*
lilu-dmenu:*rofi-theme*
#+END_SRC

To use a different theme:
#+BEGIN_SRC lisp
(let ((*dmenu-theme* (append '((:bg . "#ff0000")
                               (:fg . "#00ff00")) *dmenu-theme*)))
  (dmenu "select a number" '(1 2 3 4 5)
         :item-fn #'(lambda (x) (format nil "~r" x))))
#+END_SRC


** Installation
Clone the project into local-projects of quicklisp, then

#+BEGIN_SRC lisp
(ql:quickload :lilu-dmenu)
#+END_SRC

** Author
+ Alessandro Serra

** Licence 
[[https://tldrlegal.com/license/creative-commons-cc0-1.0-universal][CC0]]

** Copyright
Copyright (c) 2019,2021 Alessandro Serra

** ToDo
